package 面试经典150题.哈希表;

/**
 * @author tmh
 * @date 2024/6/5 20:03
 * @description
 */
public class T242有效的字母异位词 {
    public boolean isAnagram(String s, String t) {
        //判断两个字符串的长度是否相同
        if (s.length() != t.length()) {
            return false;
        }
        //自己维护一个存放26个字母的哈希表
        int[] alpha = new int[26];
        //遍历字符串，s往数组里面放入元素，t往数组里面减少元素，
        // 因为是同构的，所以最后alpha数组里面的每个元素都是为空的
        for (int i = 0; i < s.length(); i++) {
            alpha[s.charAt(i) - 'a']++;
            alpha[t.charAt(i) - 'a']--;
        }
        //遍历数组，要是有一个元素下标的位置不为0.那就说不这两个字符串就不是有效的字母
        for (int i = 0; i < alpha.length; i++) {
            if (alpha[i] != 0) {
                return false;
            }
        }
        return true;
    }

}
